#!/usr/bin/env python
# -*- encoding: utf-8 -*-
"""
主题: 删除字符串中不需要的字符
问题: 你想去掉文本字符串开头，结尾或者中间不想要的字符，比如空白。
提示 :
"""

def recipe1():
    """默认情况下，方法会去除空白字符，但是你也可以指定其他字符"""
    s = ' hello world \n'
    print(f"{s = }")
    print(f"{s.strip() = }")
    print(f"{s.lstrip() = }")
    print(f"{s.rstrip() = }")

    # Character stripping
    t = '-----hello====='
    print(f"{t = }")
    print(f"{t.lstrip('-') = }")
    print(t.rstrip("="))

def recipe2():
    """处理中间的空格"""
    s = ' hello     world \n'
    print(f"{s = }")
    print(f"{s.replace(' ', '') = }")

    import re
    print(re.sub('\s+', ' ', s))

def recipe3():
    """和其他迭代操作相结合"""
    filestrip()

def filestrip():
    with open('../somefile.txt') as f:
        lines = (line.strip() for line in f) # 执行数据转换操作, 这种方式非常高效，因为它不需要预先读取所有数据放到一个临时的列表中去
        for line in lines:
            print(line)

def main():
    print('recipe1'.center(20, '*'))
    recipe1()
    print('recipe2'.center(20, '*'))
    recipe2()    
    print('recipe3'.center(20, '*'))
    recipe3() 

if __name__ == '__main__':
    main()  